import qs from "qs"
import { getUserInfoByCode, getJSSDKSignature } from '../api'

export const getTokenData = async ({ corpId, rpaAccount, orgId }) => {
    let res = await getAuthToken({ corpId, rpaAccount, orgId })
    return res.data
}

export const wechatAuthLogin = async () => {

    console.log("href= ", window.location.href)

    // 过滤掉location.search前面的?号  ignoreQueryPrefix: true
    let query = qs.parse(window.location.search, { ignoreQueryPrefix: true })

    console.log("query= ", query);


    if (query.code) {

        try {
            let res = await getUserInfoByCode({ code: query.code, shareCode: query.shareCode || '' })

            if (res.code == 1) {
                return res
            }
        } catch (error) {
            console.log("error= ", error);
            // location.replace(generateAuthUrl(location.origin))
        }

    } else {

        console.log("%c =>> No Code 重新授权", 'color:blue;fontSize:24px;', query);

        location.replace(generateAuthUrl(location.href))
    }
}

const generateAuthUrl = (url) => {
    return `https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx9d44ba798b546272&redirect_uri=${encodeURIComponent(url)}&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect`
}

// 获取企业微信Api注入 签名等参数
const getAgentConfigData = async ({ url }) => {
    let res = await getJSSDKSignature({url})
    return res.data
}

// 企业微信 SDK 注入 API 列表
const agentConfig = ({ noncestr, timestamp, signature}) => {
    return new Promise((resolve, reject) => {
        wx.config({
            debug: false, // 开启调试模式,调用的所有 api 的返回值会在客户端 alert 出来，若要查看传入的参数，可以在 pc 端打开，参数信息会通过 log 打出，仅在 pc 端时才会打印。
            appId: 'wx9d44ba798b546272', // 必填，公众号的唯一标识
            timestamp, // 必填，生成签名的时间戳
            nonceStr:noncestr, // 必填，生成签名的随机串
            signature,// 必填，签名
            jsApiList: [
                "chooseWXPay",
                "updateAppMessageShareData",
                "updateTimelineShareData",
                "getLocation",
                // ...jsApiList
            ] // 必填，需要使用的 JS 接口列表
        });
        wx.ready(function(){
            console.log('wx.ready');
            wx.updateAppMessageShareData({ 
                title: 'CP池', // 分享标题
                desc: '寻找和你一样的CP知己好友，告别搭讪的尴尬，从相识到相知', // 分享描述
                link: 'http://cp.mpsass.com?shareCode=jiEEGj2R2s', // 分享链接，该链接域名或路径必须与当前页面对应的公众号 JS 安全域名一致
                imgUrl: 'http://cp.mpsass.com:3000/qrcode.jpg', // 分享图标
                success: function () {
                    console.log('分享成功')
                    // 设置成功
                }
            })
            wx.updateTimelineShareData({ 
                title: 'CP池', // 分享标题
                link: 'http://cp.mpsass.com?shareCode=jiEEGj2R2s', // 分享链接，该链接域名或路径必须与当前页面对应的公众号 JS 安全域名一致
                imgUrl: 'http://cp.mpsass.com:3000/qrcode.jpg', // 分享图标
                success: function () {
                    console.log('分享成功')
                    // 设置成功
                }
            })
            resolve('wx.ready')
        });
        wx.error(function(res){
            console.log(res);
        });
    })
}

export const setupAgentConfig = async () => {
    let data = await getAgentConfigData({ url: location.href })
    return agentConfig(data)
}